S3 + CloudFront でホスティングしているWebサイトをWAFを使ってメンテナンス画面表示にする
参考記事
こちらの方法で最初試したが、メンテナンスページも同じCloudFrontで管理しているとメンテナンスページ自体がブロックされてしまったので駄目だった。
こちらの方法で最終的にうまくいった。ブロック時にカスタムレスポンスでメンテナンスHTMLを返却して表示する。
手順
Ruleの設定で、Add my own rules and rule groups を選択して rule を作成する
ruleで、前述の ip sets を参照し、それらのアクセスを Allow とする
それ以外のデフォルトリクエストに対して、Action を Blockとする
メンテナンスhtmlも表示したい場合は、custom response body を作成しておき、デフォルトリクエストのカスタムレスポンスとして 503, custom response body を設定する
https://gyazo.com/ef3e26a8fef96bdc5794ccc03699d470
その瞬間、メンテナンスモードになる